﻿using Ewk.Math.ComputationTypes.Computables;

namespace Ewk.Math.ComputationTypes.Factories
{
    class ComputableDoubleFactory : IComputableFactory<double>
    {
        #region Implementation of IComputableFactory<T>

        public Computable<double> Zero
        {
            get { return new ComputableDouble(0); }
        }

        public Computable<double> Epsilon
        {
            get { return new ComputableDouble(double.Epsilon); }
        }

        public Computable<double> One
        {
            get { return new ComputableDouble(1); }
        }

        public Computable<double> MinValue
        {
            get { return new ComputableDouble(double.MinValue); }
        }

        public Computable<double> MaxValue
        {
            get { return new ComputableDouble(double.MaxValue); }
        }

        public Computable<double> Create(double value)
        {
            return new ComputableDouble(value);
        }

        #endregion
    }
}
